 
                        - D I S I D E N T S - H A C K  J O U R N A L -

                                          Numero 2
                                           XXXIII



                 TITLE:Ideologas, Zen Cracking 
                 AUTHOR: SparK
                 DISIDENTS ARGENTINA 2001


-------------------------------------------------------------------------------------------------
---------------------------[ INDICE Ideologas, Zen Cracking ]-----------------------------------
-------------------------------------------------------------------------------------------------              				
----[0x01 Introduccin                                                                          -
----[0x02 Ideologas y Zen Cracking                                                             -
----[0x03 Que es el Zen Cracking?                                                              -
----[0x04 Entrando en el territorio crack                                                       -
----[0x05 Un ejemplo                                                                            - 
-------------------------------------------------------------------------------------------------




-------------------------------------------------------------------------------------------------
-------------------------------[0x01-* Introduccin]---------------------------------------------
-------------------------------------------------------------------------------------------------
Antes que nada, quiero agradecer al grupo el cual pertenezco, por dejar exponer mis conocimientos
, que con esfuerzo he elaborado en estos aos, la prctica, la paciencia, el esfuerzo llevan a 
aprender, la voluntad de autosuperacion, y las metas definidas te permiten hacer lo que quieras
, el tiempo solo es una ilusin.


-------------------------------------------------------------------------------------------------
---------------------------[0x02-* Ideologas y Zen Cracking]------------------------------------
-------------------------------------------------------------------------------------------------

Mi pensamiento ms profundo es SER, de ah lo dems surge, YO SOY con el conocimiento, "pienso 
luego existo", deca alguien por ah....

Quizs tu lector, te preguntes que tendr que ver estas intros con el cracking?, que tiene que 
ver con reventar programas?, es algo que va ms all de eso, ms all de una accin, es un efecto
de una causa ms profunda, la causa es el aprendizaje, "revertir" situaciones para llegar 
al principio y luego volver por el principio al final.
Por ejemplo, yo cuando era chico tomaba los laberintos y empezaba desde la meta hacia el 
principio, para mi era ms fcil llegar al principio, porque?, si es el mismo laberinto?, si, es 
el mismo, pero la perspectiva es otra, primero la manera de enfrentarlo es por atrs, el 
laberinto esta preparado para enfrentarlo de adelante, desde el principio fue pensado para que 
el que empiece, le cueste llegar al final; pero no fue pensado para el camino "inverso".
Justamente esto se trata este pequeo y humilde articulo, a veces las cosas desde otro punto de 
vista, no son tan difciles como parecen.

Existe por ah en algn lugar de la red, sitios, que llevan al cibernauta a mundos insospechados,
por ejemplo una persona que llev a generar una revolucin en muchas mentes (incluso la ma), 
cuando el cracking todava era un tab solo practicado por gurs de la informtica, "elite", fue 
ORC, le llamaban ORC THE RED CRACKER, una personalidad muy particular, una persona que no 
revelaba nada de su identidad, pero sin embargo te haca sentir el verdadero aroma de las cosas, 
mirando el laberinto desde el final.
Quizs nadie sepa quien fu, o quien es, de repente el desapareci, pero dej un tesoro 
increiblemente grande, un conjunto de tutoriales que dej boquiabierto a la scene del crack, una 
revolucin no solo en informacin tcnica sino, filosfica, un punto de ver las cosas 
excepcionalmente extrao y a la vez perfecto.

Luego lo acompaaron muchas personas inspiradas en l, una de las ms importantes quizs FRAVIA,
una persona muy inteligente, que respet la filosofa de ORC y la implant en el diseo de su web,
un diseo fino, casi medieval.



-------------------------------------------------------------------------------------------------
--------------------------[0x03-* Que es el Zen Cracking?]--------------------------------------
-------------------------------------------------------------------------------------------------


El Zen Cracking fue una manera que tuvo ORC de llamarle a la busqueda de ruptura de las rutinas 
de proteccion de un software, el decia: "Just feel the code" (solo siente el codigo), es una 
manera de decir, usa tus sentidos para localizar el punto de ruptura, ademas de tu cabeza ;) , 
con esa frase fue mas all de toda lgica, usa tu capacidad, tu cerebro, pero tambin usa tu 
intuicin para encontrar ese punto sagrado, es una filosofa de vida mas que nada, es una forma 
de actuar frente a un problema, usa tu cerebro y tu intuicin, todo esta mezclado, todo esta en 
todo...

As un da yo encontr sus estudios sobre cracking, y entend una verdad ms importante que el 
0 o el 1, encontre toda una filosofa mas profunda en esto del cracking, donde luego FRAVIA, 
presento sus estudios sobre REALITY CRACKING, en la que ORC antes ya haba hecho mencin; yo 
inclusive he probado lo de sentir el cdigo y sorpresivamente ha funcionado; porque generalmante 
cuando se programa en algn lenguaje estructurado, o RAD (rapid application development), por 
ejemplo DELPHI o VISUAL BASIC, el compilador genera el cdigo de mquina de manera muy parecida 
en cada programa. 

Por ejemplo, cuando se agregan radiobuttons, que son esos botones redonditos donde al hacer click
quedan marcados con un puntito, hay una serie de subrutinas en ASM (ensamblador) que el 
compilador genera por defecto para todos los programas, o sea el compilador compila la logica del
programa, mientras que la lgica de los componentes esta pre-programada, por lo tanto, se 
presenta un PATRN de instrucciones, que cuando has ledo muchos tutoriales y cdigo, te das 
cuenta a que pertenecen.

Por Ejemplo:

una aplicacin tiene un conjunto de botones, ejemplo calculadora entonces, al compilar esa 
aplicacion, en ASM queda algo asi:

sumar:	mov eax, 00676468	<----mueve un dato a eax, que puede ser el identificador del button
	cmp eax, 0		<----lo compara para ver si es el presionado
	jne restar		<----si no es asi ver si se clikeo el botn de restar




restar:  mov eax, 00584766
	 cmp eax,0
	 jne multiplicar        <----y asi hasta encontrar el botn

entonces este patrn de instrucciones es entendible cuando se tiene cierta practica, luego de 
esta logica de los componentes se encuentra la lgica del programa mismo, como por ejemplo, para
aquellos que sepan pascal:

if (numeroqueentroelusuario = numeroreciencalculado) then
	registered:=true;
if (registered=true) then
	createwindow('Registered');
else
	createwindow('Unregistered');

Fcilmente se sabe que el usuario entra un nmero y un nombre de usuario, y el programa calcula 
dependiendo del nombre de usuario el nmero de registro (variable numeroreciencalculado), luego 
lo chequea con el que ingreso el usuario (variable numeroqueentroelusuario), y de ahi el usuario
es registrado o no, luego cambia todo el aspecto del programa, ya sea activar botones, sacar 
mensajes insistentes, o hacer infinitos los limites de tiempo para el uso del programa, 
dependiendo de la proteccin del programa.

Entonces, diferenciamos la lgica del programa, (la lgica que utiliz el programador), de la de
la lgica de los componentes, ah vemos donde pueden estar los puntos de ruptura, primero viendo 
los PATRONES de cdigo, luego el chequeo de los datos ingresados y los calculados por el
programa, son muy fciles de encontrar.

Ojo, no todo es tan fcil, puede que no solo sea un chequeo, a veces se encuentran "espejos", 
que vuelven a chequear lo mismo en distintos lugares del programa, esas son protecciones 
anti-crackers ;*)
Luego tambin el cdigo puede ser guardado en un archivo temporal y borrarse de la memoria, para 
luego chequearlo a travs del disco, por eso hay que estar atento y conocer las funciones de 
escritura, con sus llamados a interrupcin correspondientes, luego las API de Windows que son 
llamadas para aplicar las distintas tcnicas.



-------------------------------------------------------------------------------------------------
--------------------------[0x04-* Entrando en territorio crack]----------------------------------
-------------------------------------------------------------------------------------------------




Bueno, creo que no todo es teora sino tambin es un poco (bastante) de prctica, podemos poseer
hoy en da todos los conocimientos que queramos obtener, gracias a Internet, pero lo importante 
es absorverlos y que pasen a formar parte de vos mismo, la ingeniera inversa debe ser centro de
tu vida..... pero no de tu existencia.
Hay muchas formas de satisfacer el hambre de un programa, por ejemplo, la ms fcil y rpida es 
la de parchear el cdigo, mas cerca todava parchear los saltos decisivos, las tomas de 
decisiones que llevarn al programa a "transformarse en..." me refiero a poder cambiar el rumbo 
de las cosas siempre para bien.
Otra forma es una pesca del serial vlido, para eso se usan los debuggers (ver leccin uno) como
el soft-ice (wwww.numega.com, de antemano, no respondo sobre warez). La pesca del serial vlido,
es cuando se ingresa un cdigo no vlido, ej: 12345 y luego se sigue el clculo del serial vlido
que generalmente lo genera el programa runtime a partir de un nombre o email o algn dato que el 
usuario pueda ingresar ej:

nombre de usuario: SparK
numero de registro: 12345

bueno, seguramente el nmero de registro vlido no ser 12345 sera un milagro ;*)
El chiste es seguir el cdigo vlido con el debugger paso a paso, viendo como se pasa de un 
registro a oro sumandose, dividindose, o multiplicndose hasta luego hacer la comparacion:


cmp regval,noval    cmp noval,regval
jne xxxxxx          je xxxxxxxxxxxx
jz xxxxxx           jnz xxxxxxxxxxx

y llamar al cartel o lo que sea, aviso que los chequeos pueden ser muy diversos,estos son ejemplos
ms comunes, por eso, lo principal es entender el ensamblador, tratar de ver ms all del patrn 
de letras y nmeros, para ver el significado de las cosas.

Antes cuando no era tan abierto el mundo de la informtica, existan los verdaderos CODERS, los gurs, 
lean el cdigo ASCII y comprendan las instruccines automaticamente, codificaban en ensamblador 
porque eran libres, eran expertos en criptografa, ellos hicieron posibles esto de hoy, muchos son bien 
conocidos, otros ni los conocen pero estn, como el aire que no ven pero respiran.

Entonces en un momento cuando el chequeo se haga antes de saltar la ventana, el serial vlido se 
comparar con el no vlido, introducido por nosotros, lo que se puede hacer, es mirar los dos registros
y ver en cual est el nuestro, entonces, sabremos que en el otro est el vlido para nuestro registro, 
con ESE dato que ingresamos (en este caso spark); nos salimos del debugger, y ingresamos el cdigo 
copiado y voil!!, registrado!.

Otro mtodo es una KeyGen (key generator, generador de la llave o cdigo), es estudiar el algoritmo de 
creacin del nmero de serie vlido, para crear un programa aparte que genere los nmeros de serie 
vlidos a partir de los datos que le demos.

Por ejemplo: si el programa pide nombre de usuario y numero de registro, el keygen pedira el nombre de 
usuario y generara el numero de registro automaticamente.

Como funciona esto?

Al haber estudiado con anterioridad el algoritmo y haber programado una keygen, es lo mismo que extraer
el cdigo encargado de hacer eso del programa principal y generar un nuevo programa, que solo har el 
trabajo de generar el cdigo vlido, slo que ahora ser bueno y lo mostrar.

Luego existen infinidades de protecciones y rupturas de ellas, com por ejemplo las famosas llaves en 
el registro de windows, que el programa introduce, o las llaves introducidas en un archivo ini, o las 
mochilas (los dispositivos que se conectan en puerto paralelo o serie y aportan datos al programa 
principal ejecutandose y este los verifica, sabiendo si el programa es original o pirateado), las 
mochilas suelen estudiarse, y se genera un loader (cargador), que en runtime hace de mochila y brinda 
a la aplicacin los datos requeridos por la misma hacindole creer que es la original.

Ms adelante veremos un tutorial con ejemplos, dedicados a cada proteccin, tratar de usar crackmes, 
llamados programas de entrenamiento que son de libre modificacin y distribucin, pero nunca programas 
comerciales, ya que sera ilegal modificar cdigo propietario, y no quiero entrar en esas acciones que 
no hacen otra cosa que promover el delito y no formar a programadores ms concientes de la seguridad 
de un programa.





-------------------------------------------------------------------------------------------------
------------------------------[0x05-* Un ejemplo]------------------------------------------------
-------------------------------------------------------------------------------------------------



Bueno, a modo de ejemplo empezar a crackear (o intentar al menos ;) un crackme del team 
area54cracks, cuya web es:
 
http://saigon.vietmedia.com/area54cracksv2/index2.htm 
             o en  
http://galeon.com/disidentsweb/CrkMeViz-4.zip

en la seccin crackmes, se encuentran varios crackmes, yo eleg uno llamado: CrkMeV4, ocupa 16KB, 
y pens  que sera til para los que recin empiezan... no se asusten XD

bueno, lo bajamos y lo ejecutamos , vemos que nos dice, que tiene una limitacion a 8 ejecuciones, 
y abajo posee un contador en negrita, la primera vez es un 0, luego si salimos del programa, y 
volvemos a ejecutarlo, podemos observar que el contador se incrementa a 1, y asi sucesivamente 
hasta llegar a 8, cuando nos dice que la aplicacin expir.

Si vemos un poco el menu, podemos observar que est el tpico menu Archivo y luego si hacemos 
click en l encontramos opciones que son Acerca de..., Salir y Registrar.

Acerca de....  : si hacemos click vemos que nos informa sobre el programa y nos dice a nombre de 
quien esta registrado y con que nro de registro, normalmente dice <Unregistered>, pero nosotros 
cambiaremos ese estado ;-D

Salir : hagan click y se comern un incremento en el contador XDD , para el que no entendi el 
chiste malo que acabo de hacer, Salir nos saca del programa...

Registrar : si hacemos click en l nos lleva a otra ventanita donde debemos poner un nombre de 
usuario y un nro de serie, y si es correcto nos registra, sino seguiremos limitados :P

pongamos como user name, SparK , pongan ahora 123456, en el campo serial number; como vemos el 
botn registrar sigue desactivado, esto es curioso, bueno, en vez de SparK, pongamos SparKrisp, 
si van tecleando despacio, cuando ponen la letra nro 6 correspondiente a la "r", el botn se 
registrar activa, con lo que nos lleva a pensar, de que la subrutina que genera el nmero de 
serie vlido necesita 6 letras en el campo User Name, curioso.... pero no importa ;) .
De todas formas, no atacaremos ah....


-----------------------------------------------------------------------------------------------------
                             Manos a la obra
-----------------------------------------------------------------------------------------------------

Primero, necesitaremos un desensamblador, si han ledo el otro artculo de esta ezine, sabrn o 
tendrn una idea de lo que ya es, bueno para aquellos que no lo leyeron, es un programa que toma 
el cdigo ASCII de un archivo y lo decodifica, transformndolo a instrucciones en Ensamblador, 
un poco mas entendible para el ser humano.

Utilizaremos por ahora uno sencillo el W32Dasm, que lo pueden conseguir en la pgina de karpoff 
(welcome.to/karpoff), en la seccion herramientas, bajen todo lo de W32dasm que encuentren ah, 
todo es til.

Ahora instalemos el W32Dasm, luego ejecutemoslo, y debemos ir al menu File, luego a Open, u open 
file, no me acuerdo bien la opcion, pero es la opcion para abrir el archivo a desensamblar.

Elegimos el crackme para que lo desensamble y esperamos (NOTA antes de desensamblarlo, deben haber 
salido del programa a crackear, sin les saltara en el W32Dasm que el crackme est siendo usado 
por otro programa) , luego de un rato aparecer una maraa de cosas tremendas, eso se llama 
Ensamblador :)

Ya que tenemos todo el meollo, veamos por donde empezamos, primero miremos un poco el encabezado
que nos muestra del programa, si observamos bien, encontraremos algo asi:


			+++++++++++++++++++ IMPORTED FUNCTIONS ++++++++++++++++++
			Number of Imported Modules =    1 (decimal)

			   Import Module 001: MSVBVM50.DLL
			+++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Bien, vemos que hay un mdulo que el archivo importa para poder funcionar, este contiene 
procesos y funciones, es una librera, si observamos el nombre del archivo vemos que contiene 
estas siglas:   M      S    V     B    V    M    5   0

M : Micro
S : Soft
V : Visual
B : Basic
V : no se :P tampoco interesa.
M : Module
5 : version 5
0 : punto 0


en total vemos que el programa necesita una librera de Microsoft Visual Basic 5.0, por lo tanto 
vemos que est hecho en Visual Basic, entonces debemos tener ciertas precauciones....

Primero, si hacemos click en uno de los botones del W32Dasm llamado String Ref. (strings de 
referencias),veremos "VB5!", o algo as, muy pocas cosas, en realidad ah tienen que aparecer,
la mayora de las cadenas de caracteres que contiene el programa, por ejemplo "User Name", 
"Limitado a 8 ejecuciones"  , etc. Si ejecutan el crackme vern las strings que les 
acabo de nombrar; entonces para eso les dije que se bajaran todos los W32Dasm de la pgina 
de Karpoff, porque hay uno que es para desensamblar programas hechos con  Visual Basic.

Ahora si, ejecutamos el otro W32Dasm, y desensamblamos el mismo programa; ahora hacemos click de 
nuevo en String References, y Voil! vemos los strings de la aplicacin.

Les explicar en detalle que hice y porque lo hice as, primero busque el que dice:
                        
                      "CrkMeViZ Registrado!!"

Debe haber en algn lado, algo que haga que aparezca este bendito mensaje en la pantalla, y encontraremos 
ese punto.

Si hacemos doble click en ese string nos llevar al lugar en donde se encuentra, es mas o menos este:



* Possible StringData Ref from Code Obj ->"  CrkMeViZ Registrado!! "  <-------------- ACAAAA!!! 
                                  
:004064A8 6814364000     push 00403614	<---- Este push guarda la cadena
					CrkMeViZ Registrado!! en la pila del sistema
:004064AD 56             push esi
:004064AE 8B16           mov edx, dword ptr [esi]
:004064B0 FF5254         call [edx+54]

Yo les coment, anteriormente en este artculo, que antes del mensaje siempre hay algo que define que 
mensaje ir, entonces busquemos un salto, antes en este artculo vimos saltos como JE, JNE, JMP, etc, 
despus explicar cada salto y como funciona.

si miramos unos renglones mas arriba en el W32Dasm encontraremos esto:


:00406477 FF1578914000            Call dword ptr [00409178]
:0040647D 6685C0                  test ax, ax
:00406480 0F847F010000            je 00406605
:00406486 8B7D08                  mov edi, dword ptr [ebp+08]
:00406489 8B857CFDFFFF            mov eax, dword ptr [ebp+FFFFFD7C]
:0040648F 57                      push edi
:00406490 FF9004030000            call dword ptr [eax+00000304]

* Reference To: MSVBVM50.__vbaObjSet, Ord:0000h
                                  |
:00406496 8B1D64914000            mov ebx, dword ptr [00409164]
:0040649C 8D8D24FEFFFF            lea ecx, dword ptr [ebp+FFFFFE24]
:004064A2 50                      push eax
:004064A3 51                      push ecx
:004064A4 FFD3                    call ebx
:004064A6 8BF0                    mov esi, eax

si observamos bien, veremos un salto.....

para el que no lo vi an es este:


			:00406480 0F847F010000            je 00406605      

je = jump equal, salta si es igual

entonces, una conclusin, lo contrario de je es jne = jump if not equal (saltar si no es igual), 
pensemos un poco, el programa nos dice que estamos registrados si NO salta, porque si salta, 
comprobemoslo haciendo doble click en la linea en donde esta el salto, el programa saltara y 
pasara por alto el mensaje, con lo que se ejecutara la subrutina como usuario no registrado; 
lo nico que tenemos que hacer es revertir las cosas para que NO salte, entonces revertamos 
las cosas, el salto que debera ir es jne, ahora lleg el momento de el cambio, el cdigo en 
hexadecimal compilado para esta intruccin es:

	0F847F010000    el desplazamiento, o sea en el lugar en donde se encuentra la instruccin 
                        es 00406480, y necesitaremos el offset, entonces haremos algo, hagan click 
                        en la linea en donde esta el salto y miren en la barra inferior del programa, 
                        la que est abajo de todo, si se fijan bien dira offset: 5880 , este nmero 
                        es muy importante, ya que nos dir la ubicacin exacta del salto.

Ahora que ya tenemos el salto debemos saber el cdigo en hexadecimal del salto que revierte al
salto original.

0F847F010000   este es el salto original. yo les podra dar un trabajo de investigacin pero ser 
               bueno ;)

0F  7F010000   es solamente la instruccion je 00406605 compilada, sin el je, o sea que el je es 
               igual al 84, y el jne es igual al 85 asi que lo nico que debemos cambiar es el 84 
               por el 85 y quedara asi la instruccion:


			:00406480 0F857F010000            jne 00406605      

fcil no?

Ahora, debemos encontrar un editor hexadecimal, yo les recomiendo el Hiew, aunque hay otras 
utilidades muy buenas tambin, no estoy seguro si el Hiew (hacker view) lo tiene karpoff, pero 
busquen que est por todos lados.

Una vez ejecutado el Hiew, buscan el crackme y luego le dan enter para que les muestre el 
cdigo ASCII, ahora aprietan F4 dos veces seguidas rapido y les mostrar el cdigo hexadecimal 
del archivo, luego aprietan F5 y ponen el offset , que en este caso sera 5880, y llegarn al 
salto 0F847F010000, ahora, apretar F3 (NOTA antes de apretar F3, no debe estar el W32Dasm abierto
mostrando el crackme en pantalla, porque sin les mostrar que el archivo no se puede editar, 
simplemente porque est siendo usado por otra aplicacin), cambiar el 84 por el 85, apretar F9 
(update) y listo. FELICITACIONES!!!

Ahora salgan de ah apretando Escape, y ejecuten el crackme, si hicieron todo bien les dir,
 que estn registrados. ;-D


Un pequeo detalle, ya que la hacemos, hagamosla bien o sino nada; si se fijan en la opcion 
acerca de... 
del menu archivo, aparecera <Unregistered>, bueno, hay una forma de que aparezca tu nombre ah y 
un nmero de serie cualquiera.

Primero debemos conseguir el Regmon (register monitor), y bajense por las dudas, lo necesitaran, 
el Filemon (file monitor), los dos estn en la pgina de Karpoff, y en castellano.

Ahora, ejecutemos el Regmon primero, luego, ejecutemos el crackme, y veremos que en regmon 
suceden un monton de cosas.....

La explicacin de esto es la siguiente:

Una forma de que el programa cuente de manera fcil y eficiente, las veces que lleva ejecutndose
el programa, asi reinicies la mquina, es llevando un control de la cantidad de veces en algn 
lado, y ese lugar es el registro  de Windows, asi que si miran bien ahora el regmon les mostrar
algo as:



0 Explorer  QueryValue	HKCU\AppEvents\Schemes\Apps\.Default\CCSelect\.current\(Default)	NOTFOUND	
1 Explorer  OpenKey	HKCR\TypeLib	SUCCESS	hKey: 0xC29C0AB0	
2 Explorer  OpenKey	HKCR\TypeLib\{50A7E9B0-70EF-11D1-B75A-00A0C90564FE}		SUCCESS	hKey: 0xC29BFA10	
3 Explorer  OpenKey	HKCR\TypeLib\{50A7E9B0-70EF-11D1-B75A-00A0C90564FE}\1.0		SUCCESS	hKey: 0xC29BEB60	
4 Explorer  OpenKey	HKCR\TypeLib\{50A7E9B0-70EF-11D1-B75A-00A0C90564FE}\1.0\0	SUCCESS	hKey: 0xC29BEB20	
5 Explorer  OpenKey	HKCR\TypeLib\{50A7E9B0-70EF-11D1-B75A-00A0C90564FE}\1.0\0\win32	SUCCESS	hKey: 0xC29BEAE0	
6 Explorer  CloseKey	HKCR\TypeLib\{50A7E9B0-70EF-11D1-B75A-00A0C90564FE}\1.0\0\win32	SUCCESS		
7 Explorer  CloseKey	HKCR\TypeLib\{50A7E9B0-70EF-11D1-B75A-00A0C90564FE}\1.0\0	SUCCESS		
8 Explorer  OpenKey	HKCR\TypeLib\{50A7E9B0-70EF-11D1-B75A-00A0C90564FE}\1.0\0	SUCCESS	hKey: 0xC29BEB20	
9 Explorer  QueryValue	
.
.
.
.
y as hasta que vemos algo como esto:

548 Crkmeviz	QueryValueEx	HKCU\Software\VB and VBA Program Settings\ODBC\Register\Serial number	NOTFOUND
.
.
551 Crkmeviz	QueryValueEx	HKCU\Software\VB and VBA Program Settings\ODBC\Register\User Name	NOTFOUND	.
.
.
564 Crkmeviz	SetValueEx	HKCU\Software\VB and VBA Program Settings\ODBC\Register\Counter	SUCCESS	"5"		

Antes  que nada miren la ltima lnea, dice claramente " counter success "5" " cuando yo estaba 
ejecutando el programa, lo haba ejecutado 4 veces, y en la quinta, guard un 5 en el registro de
Windows, que hace con esto?, simple, cuando el programa se ejecuta la prxima vez, se fija 
primero en orden de aparicin, busca si hay un "Serial number" y un "User Name" y luego como no 
encuentra ninguno de esos dos, dice "entonces este programa est sin registrar todava, entonces
busco el contador y lo actualizo" y efectivamente busca el nmero en el registro y lo actualiza, 
en mi caso es 5 el nuevo valor.

Por lo tanto, el programa mismo nos pide que pongamos el nombre de usuario y el nmero de serie, 
asi que hagmosle caso ;) veamos, tenemos la llave: 

			HKCU\Software\VB and VBA Program Settings\ODBC\Register\Serial number

y la llave:

			HKCU\Software\VB and VBA Program Settings\ODBC\Register\User Name

Ahora vayamos a Inicio, Ejecutar, y tipeamos regedit, luego, buscamos HKCU, que suele ser la 
segunda rama empezando de arriba hacia abajo, luego click en software, y buscamos VB and .... , 
luego click ODBC, luego Register y por ltimo.... no estn ni Serial number ni User Name!!!! que
horrooor!! :) mejor, vamos a la otra ventana y hacemos click en el botn derecho y luego click en
Nuevo, valor de la cadena y ponemos tal cual como dice el crackme: Serial number, listo ahora 
hacemos doble click en  el tem que acabamos crear y ponemos cualquier nmero, listo, ahora 
hacemos lo mismo y ponemos como nombre: User Name, se crea otro tem y ponemos ahora un Nombre 
de usuario, pongan algo ms de 6 letras acuerdense porque el programa por algn motivo chequea 
por 6 letras, tambin podramos crackear la cantidad de letras, pero..... nah! dejemosslo as :).

Listo ahora, salgamos del regedit y ejecutemos el crackme, y luego hacer click en el menu archivo, 
acerca de.... y veremos lo que pusimos en el regedit lindo no? 


Un truco:
---------
Si an no crackeamos la aplicacin, y tenemos por ejemplo 5 usos, podemos volverlos a 0 usos,
solamente poniendo en el valor 	

	HKCU\Software\VB and VBA Program Settings\ODBC\Register\Counter   el valor 0, es solo un tip ;)


Conclusin:
-----------

Ahora han visto en una pequesima proporcin de lo que es cracking, lo que es la ingeniera 
inversa, y lo til que es para depurar soft, que muchas veces los compiladores RAD cargan en 
nuestra pobre aplicacin, funciones y chequeos innecesarios.
Este crackme se podra haber atacado de mil maneras, si alguno de ustedes se les ocurre, 
intntenlo, y luego me dicen.



Saludos,
	SparK

				

---------------------------------------------------
-       CONTACTA CONMIGO O CON EL TEAM            -
---------------------------------------------------
- NICK:     Spark                                 -
- CARGO:    Director de Disidents Argentina       -    
- MAIL:     spark@kernel.net             	  -	
- TEAM:     disidents@yahoo.es                    -
---------------------------------------------------

                                                          Disidents Argentina  2001 2 edicion.
-------------------------------------------------------------------------------------------------

                     @@-------               @@---------------  
		    @@----                  @@---------       @@@@@@@@@  
		   @@--     @@@@@--        @@-- @@@@@       @     @@  @@@@@@@@@@@@@@@@@@@@@@@@@@@@-------
              @@@@@@    @@ @@      @@ @@@@@@-  @@      @@@ @    @@  @@-----------------------------
             @@        @@ @@@@@   @@ @@---    @@@@@@   @@ @@   @@  @@@@@--------------
            @@        @@     @@  @@ @@ -     @@       @@ @@   @@      @@----------
             @@@@@@@ @@  @@@@@@ @@   @@@@@@@ @@@@@@@ @@  @@ @@	     @@--------
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@------
